home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / DIRS.SWG / 0032_Recursive Directory.pas < prev    next >
Pascal/Delphi Source File  |  1994-08-24  |  1KB  |  66 lines

  1. {
  2.  On 05-25-94 ROBERT HARRISON wrote to ALL...
  3.  
  4.  RH>   I'm trying to obtain the source for searching for files in all
  5.  RH> directories and drives.  Anyone happened to have the information
  6.  RH> they would like to share with me?  Thanks.
  7.  
  8. ----------------- 8< ------------- }
  9.  
  10. USES DOS, Crt;
  11.  
  12. PROCEDURE Search;
  13. VAR
  14.   Err     : INTEGER;
  15.   Attrib,
  16.   CurrDir : STRING;
  17.   DirInfo : SearchRec;
  18.  
  19. Begin
  20.   FindFirst( '*.*', AnyFile, DirInfo );
  21.  
  22.   Err := 0;
  23.  
  24.   WHILE Err = 0 DO
  25.   Begin
  26.     { If the directory wasn't . or .., then find all files in it ... }
  27.     IF ((DirInfo.Attr AND Directory) = Directory) AND
  28.        (Pos( '.', DirInfo.Name ) = 0) THEN
  29.     Begin
  30.       {$I-}
  31.       ChDir( DirInfo.Name );
  32.       {$I+}
  33.  
  34.       { Find all files in subdirectory that was found }
  35.       Search;
  36.       DirInfo.Attr := 0;
  37.     End
  38.     ELSE
  39.     Begin
  40.       GetDir( 0, CurrDir );
  41.       WriteLn( DirInfo.Name );
  42.       FindNext( DirInfo );
  43.  
  44.       Err := DosError;
  45.     End;
  46.   End;
  47.  
  48.   {$I-}
  49.   ChDir( '..' );
  50.   {$I+}
  51.  
  52.   IF IOResult <> 0 THEN
  53.     { Do Nothing...probably root directory... };
  54. End;
  55.  
  56. VAR
  57.   CurDir : STRING;
  58.  
  59. Begin
  60.   ClrScr;
  61.   GetDir( 0, CurDir );
  62.   ChDir( 'C:\' );
  63.   Search;
  64.   ChDir( CurDir );
  65. End.
  66.